package com.spring.context;

import com.spring.bean.BeanDefinition;

import java.util.Collection;
import java.util.List;

/**
 * BeanDefinition  定义信息注册器接口
 *
 * 向 容器 context 注册定义信息
 */

public interface BeanDefinitionRegistry {
	/**
	 * 向容器中注册bean 定义信息
	 *
	 * 本质就是往一个 Map 容器中添加数据
	 */
	void registryBeanDefinition(String beanName, BeanDefinition bd);
	
	/**
	 * 移除bean 定义，基本没用到
	 */
	void removeBeanDefinition(String beanName);
	
	/**
	 * 返回bean 定义信息
	 */
	BeanDefinition getBeanDefinition(String beanName);
	
	/**
	 * 是否存在某个bean定义名字
	 */
	boolean containsBeanDefinition(String beanName);
	
	/**
	 * 返回所有bean 定义名字
	 */
	String[] getBeanDefinitionNames();
	
	/**
	 * 增加一个方法，方便获得所有bean定义
	 */
	Collection<BeanDefinition> getAllBeanDefinition();
}
